package com.tydic.system.domain.req;


import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 获取文档签署链接请求参数
 *
 * @author zr
 * @date 2023-09-14 17:30
 */
@Data
@NoArgsConstructor

public class FileSignRequest {
    /**
     * 文档在当前系统的唯一识别标识
     */
    /**
     * 文档在当前系统的唯一识别标识
     */
    private String docId;

    /**
     * 文档在第三方业务系统的唯一标识
     */
    /**
     * 文档在第三方业务系统的唯一标识
     */
    private String tpDocId;

    /**
     * 设置是否关闭签署任务，关闭签署任务后合同将不能继续签署。
     * 0：签署完成后，不自动关闭签署任务（默认）；
     * 1：签署完成后，自动关闭签署任务
     */
    /**
     * 文档在当前系统的唯一识别标识
     */
    private Integer isAutoArchive;

    /**
     * 是否发送签署通知，0：否（默认），1：是
     */
    /**
     * 是否发送签署通知，0：否（默认），1：是
     */
    private Integer isSendNotify;

    /**
     * "页面跳转地址，" +
     * "签署成功时：1、若不指定页面跳转地址，则显示签署状态（成功）页面；" +
     * "          2、若指定页面跳转地址，则直接跳转到指定地址；\n" +
     * "签署失败时：显示签署状态（失败）页面"
     */
    private String returnUrl;

    /**
     * URL有效期，以分钟为单位进行设置，
     * 大于等于0的正整数，不传则默认10080分钟（7天），
     * 最长有效期为一年，传0则默认按最长有效期
     */
    /**
     * URL有效期
     */
    private Integer urlTimeOut;

    /**
     * 文档签署页面访问方式,
     * 0：不做访问限制（默认）；
     * 1：访问码；
     * 2：手机验证码
     */
    /**
     * 文档签署页面访问方式
     */
    private Integer accessType;

    /**
     * 文档签署页面访问码，签署验证方式为访问码时必填，平台方自定义，填写了则需要填入访问码才能打开本接口返回的签署链接。适用于平台方业务系统自行向用户发送签署链接时使用。
     */
    /**
     * 文档签署页面访问码，
     */
    private String accessCode;

    /**
     * 页面终端适配方式
     */
    /**
     * 页面终端适配方式client_page_type：0：自适应（默认）；1：PC；2：H5
     */
    private Integer clientPageType;

    /**
     * 签署人在当前系统的唯一识别标识
     * 签署人在当前系统的唯一识别标识、
     * 在第三方业务系统的唯一标识不允许同时传入，
     * 只允许且必须传一个
     */
    /**
     * 签署人在当前系统的唯一识别标识
     */
    private String signerAccountId;

    /**
     * 签署人在第三方业务系统的唯一标识，
     * 签署人在当前系统的唯一识别标识、
     * 在第三方业务系统的唯一标识不允许同时传入，
     * 只允许且必须传一个
     */
    /**
     * 签署人在第三方业务系统的唯一标识
     */
    private String tpSignerAccountId;

    /**
     * 签署人姓名
     */
    /**
     * 签署人姓名
     */
    private String signerName;

    /**
     * 签署人手机号
     */
    /**
     * 签署人手机号
     */
    private String mobile;

    /**
     * 手机号区号，非必传，默认+86，传参时需带“+”号
     */
    /**
     * 手机号区号
     */
    private String areaCode;

    /**
     * 签署人邮箱
     */
    /**
     * 签署人邮箱
     */
    private String email;

    /**
     * 代表企业签时，企业在当前系统的唯一识别标识
     */
    /**
     * 代表企业签时，企业在当前系统的唯一识别标识
     */
    private String companyId;

    /**
     * 代表企业签时，填写未注册的企业名称
     */
    /**
     * 代表企业签时，填写未注册的企业名称
     */
    private String companyName;

    /**
     * 代表企业签时，企业在第三方业务系统的唯一标识
     */
    /**
     * 代表企业签时，企业在第三方业务系统的唯一标识
     */
    private String tpOrgId;

    /**
     * 是否指定签署位置,0：否（默认）；1：是
     */
    /**
     * 是否指定签署位置,0：否（默认）；1：是
     */
    private String isPosition;

    /**
     * 意愿校验方式 0：短信验证（默认）；
     * 1：刷脸验证；
     * 2：签署方自行选择；
     * 5：音视频双录验证；
     * 6：密码验证，
     * 支持多种时用逗号分隔，
     * 签署方自行选择不支持组合使用，
     * 刷脸验证不能单独使用
     */
    /**
     * 意愿校验方式
     */
    private String verifyMode;

    /**
     * 代表企业签署时，签署要求：1：企业盖章（默认）；2：企业盖章+个人签名
     */
    /**
     * 代表企业签署时，签署要求
     */
    private Integer signDemand;

    /**
     * 是否允许拒签，
     * 0：不允许（默认），
     * 1：允许
     */
    /**
     * 是否允许拒签，0：不允许（默认），1：允许
     */
    private Integer isAllowReject;

    /**
     * 签署回调流水号，用于识别具体哪一次签署
     */
    /**
     * 用于识别具体哪一次签署
     */
    private String notifyNo;

    /**
     * 文件签署信息列表
     */
    /**
     * 文件签署信息列表
     */
    private List<DocSignInfoDTO> docSignInfoDTO;

    /**
     * 签署个人签名时，默认：
     * 0：签署方自行选择；
     * 1：标准签名；
     * 2：实时手绘
     */
    /**
     * 签署个人签名时，默认：0：签署方自行选择；1：标准签名；2：实时手绘
     */
    private Integer personSealType;

    /**
     * 语言：
     * en-US：English，
     * zh-CN：简体中文（默认）
     */
    /**
     * 语言
     */
    private String lang;

}
